/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package com.baratongoweb.model;


import com.baratongoweb.model.Model;
import com.baratongoweb.modelos.Persona;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.LinkedList;

/**
 *
 * @author vane
 */
public class PersonasDAO extends Model implements IDAO<Persona> {

    //private static Model model;
    private PreparedStatement ps;
    private PreparedStatement psInsert;
    private PreparedStatement psEliminar;
    private PreparedStatement psModificar;
    public static Connection conexion;

    public PersonasDAO() throws SQLException{
       // model=model.getInstance();
    }

    public Persona consultar(String codigo) throws SQLException {
        
        System.out.println("codigo "+codigo);
            String sql="select codigo, nombre, apellido, cargo, direccion,sexo, email " +
                    "from personas where codigo="+codigo;
            ps=getCon().prepareStatement(sql);
            System.out.println("ps "+ps);
            ResultSet rs=ps.executeQuery();
            try{
            rs.next();
            System.out.println("\n"+rs.getString("nombre"));
            Persona persona= new Persona();
            persona.setCodigo(rs.getString("codigo"));
            persona.setNombre(rs.getString("nombre"));
            persona.setApellido(rs.getString("apellido"));
            persona.setDireccion(rs.getString("direccion"));
            persona.setSexo(rs.getString("sexo"));
            persona.setEmail(rs.getString("email"));
            persona.setCargo(rs.getInt("cargo"));
            System.out.println(persona);
        return persona;
            }catch(Exception e){}
            return null;
    }

    public void insertar(Persona t) throws SQLException {
        
        if(psInsert==null){
            String  sql="insert into personas(codigo, nombre, apellido, direccion,sexo, email,cargo,sueldo) " +
                    "values(?,?,?,?,?,?,?,?)";
            psInsert=getCon().prepareStatement(sql);
        }
//try{
        System.out.println("codigo "+t.getCodigo());
        int x =Integer.parseInt(t.getCodigo());
        System.out.println("codigo "+x);
        psInsert.setInt(1, x);
        psInsert.setString(2, t.getNombre());
        System.out.println("nombre ");
        psInsert.setString(3, t.getApellido());
        psInsert.setString(4, t.getDireccion());
        psInsert.setString(5, t.getEmail());
        psInsert.executeUpdate();
  //      }catch(Exception e){}
    }

    public void modificar(Persona t) throws SQLException {
        Model m=new Model();
        String sql="UPDATE personas SET" +
                " nombre='" +t.getNombre()+"', "+
                "apellido='" +t.getApellido()+"', "+
                "direccion='" +t.getDireccion()+"', "+
                "sexo='" +t.getSexo()+"', "+
                "email='" +t.getEmail()+", "+
                "WHERE codigo="+t.getCodigo();
        psModificar=m.getCon().prepareStatement(sql);
        psModificar.executeUpdate(sql);
    }

    public void eliminar(Persona t) throws SQLException {
        Model m=new Model();
        String sql="DELETE FROM personas WHERE codigo="+t.getCodigo();
        psEliminar=m.getCon().prepareStatement(sql);
        psEliminar.executeUpdate(sql);
    }

    public LinkedList<Persona> listar() throws SQLException {
        throw new UnsupportedOperationException("Not supported yet.");
    }
}